option('gst_debug', type : 'boolean', value : true)
option('gst_parse', type : 'boolean', value : true,
       description: 'Enable pipeline string parser')
option('registry', type : 'boolean', value : true)
option('tracer_hooks', type : 'boolean', value : true, description: 'Enable tracer usage')
option('ptp-helper-setuid-user', type : 'string',
       description : 'User to switch to when installing gst-ptp-helper setuid root')
option('ptp-helper-setuid-group', type : 'string',
       description : 'Group to switch to when installing gst-ptp-helper setuid root')
option('ptp-helper-permissions', type : 'combo',
       choices : ['none', 'setuid-root', 'capabilities', 'auto'], value : 'auto')
option('option-parsing', type : 'boolean', value : true,
       description: 'Enable command line option parsing')
option('poisoning', type : 'boolean', value : false, description : 'Enable poisoning of deallocated objects')
option('memory-alignment', type: 'combo',
       choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
       value: 'malloc')

# Feature options
option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
option('libunwind', type : 'feature', value : 'auto', description : 'Use libunwind to generate backtraces')
option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
option('bash-completion', type : 'feature', value : 'auto', description : 'Install bash completion files')
option('coretracers', type : 'feature', value : 'auto', description : 'Build coretracers plugin')

# Common feature options
option('examples', type : 'feature', value : 'auto', yield : true)
option('tests', type : 'feature', value : 'auto', yield : true)
option('benchmarks', type : 'feature', value : 'auto', yield : true)
option('tools', type : 'feature', value : 'auto', yield : true)
option('introspection', type : 'feature', value : 'auto', yield : true, description : 'Generate gobject-introspection bindings')
option('nls', type : 'feature', value : 'auto', yield: true, description : 'Enable native language support (translations)')
option('gobject-cast-checks', type : 'feature', value : 'auto', yield : true,
       description: 'Enable run-time GObject cast checks (auto = enabled for development, disabled for stable releases)')
option('glib-asserts', type : 'feature', value : 'enabled', yield : true,
       description: 'Enable GLib assertion (auto = enabled for development, disabled for stable releases)')
option('glib-checks', type : 'feature', value : 'enabled', yield : true,
       description: 'Enable GLib checks such as API guards (auto = enabled for development, disabled for stable releases)')
option('extra-checks', type : 'feature', value : 'enabled', yield : true, description : 'Enable extra runtime checks')

# Common options
option('package-name', type : 'string', yield : true,
       description : 'package name to use in plugins')
option('package-origin', type : 'string', value : 'Unknown package origin', yield : true,
       description : 'package origin URL to use in plugins')
option('doc', type : 'feature', value : 'auto', yield: true,
       description: 'Enable documentation.')
